在進行MLP的大型預測時,需要先將MNIST中的每張28*28的二維向量圖片傳換為784個float型態浮點數,其目的是以便在機器學習模型中使用。這通常在使用像素值作為特徵的圖像分類任務中使用,其中每個樣本被表示為一個一維特徵向量,每個元素對應於圖像中的一個像素值。
我們會利用reshape()方法將28*28的圖片轉換為784個數字的一維向量,再以astype()方法把784個數字都轉為float型態浮點數,如下:
train_feature_vector = train_feature.reshape(len(train_feature),
784).astype('float32')
test_feature_vector = test_feature.reshape(len(test_feature),
784).astype('float32')
查看是否已轉換為784個一維向量:
print(train_feature_vector.shape,test_feature_vector.shape)
兩個數據中的第1個參數是圖片總數,第2個是幾個一維向量。
再來要查看784個數字的值
print(train_feature_vector[0])
可以發現這些值範圍都是0到255之間的浮點數,這段程式碼可以找出他的特徵向量,並印出來
我們所得到的這些值因為數字太大以及數量太多所以效率會有所下降,我們利用之前學過的標準化可以把0到255的這784個數字去除以255,將會得到0到1之間的浮點數,可以有效的增加效率。
train_feature_normalize = train_feature_vector / 255
test_feature_normalize = test_feature_vector / 255
再將它印出來:
print(train_feature_normalize[0])